package cn.iocoder.yudao.module.eval.controller.admin.profession.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.*;
import java.time.LocalDate;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;

@Schema(description = "管理后台 - 职业工种新增/修改 Request VO")
@Data
public class EvalProfessionSaveReqVO {

    @Schema(description = "主键ID", example = "1024")
    private Long id;

    @Schema(description = "职业代码", requiredMode = Schema.RequiredMode.REQUIRED, example = "6-31-01-03")
    @NotEmpty(message = "职业代码不能为空")
    @Size(max = 50, message = "职业代码长度不能超过50个字符")
    private String professionCode;

    @Schema(description = "职业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "数控车工")
    @NotEmpty(message = "职业名称不能为空")
    @Size(max = 100, message = "职业名称长度不能超过100个字符")
    private String professionName;

    @Schema(description = "职业类别", example = "技能人员")
    @Size(max = 100, message = "职业类别长度不能超过100个字符")
    private String professionCategory;

    @Schema(description = "适用等级", example = "五级,四级,三级,二级,一级")
    @Size(max = 500, message = "适用等级长度不能超过500个字符")
    private String applicableLevels;

    @Schema(description = "审核状态", example = "1")
    private Integer approvalStatus;

    @Schema(description = "备案日期", example = "2024-01-01")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate filingDate;

    @Schema(description = "审核通过日期", example = "2024-01-15")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate approvalDate;

    @Schema(description = "审核意见", example = "符合备案要求")
    private String approvalComments;

    @Schema(description = "备案资料清单", example = "{\"files\": []}")
    private String documents;

}
